package main

import (
	"fmt"
	"time"
)

/*
*
NewTimer() :NewTimer实例化Timer结构体，在持续时间d 之后发送当前时间至通道内。
time 包里的NewTimer() 函数用于创建一个新的一次性计时器，改计时器将至少在持续时间 d 之后在其通道上传输实际时间。
用法： func NewTimer(d Duration) *Timer
这里的， *Timer 是执向计时器的指针。
返回值：它返回一个通道，通知计时器必须等待多长时间。
*/

func main() {
	//timer定时器，是到固定时间后，执行一次，然后结束
	newtimer := time.NewTimer(5 * time.Second)

	// Notifying the channel
	<-newtimer.C //读取 Timer.C 得到 定时后的系统时间。并且完成一次  chan 的 读操作。如果感兴趣的话，可以打印一下这个值看看

	// Printed after 5 seconds
	fmt.Println("Timer is inactivated")
}

/**
打印字符串很简单，如果没有计时器，那么该程序一运行就应该立即打印出 Timer is inactivated；
然而，我们注意到，程序运行之后，至少经过五秒，才打印出 Timer is inactivated；
这是因为我们设定了一个五秒的计时器。程序在此阻塞了五秒之后才正常运行。

在运行代码5秒钟后，打印了上述输出，因为在该指定时间之后，该通道将被通知计时器已被禁用。

实际上，Timer 使用完后还可以再次启用它，方法是调用它的 Reset 方法。

*/
